1 A$="":IFFL=0THENGOSUB60000 3 GOTO50:REM"[141][147] SOFTWARE BY BULL[141] 7 [128]:[143]" 10 : DIRECTORY EDITOR 11 : 15 : BY 19 : DICK BULL 738 PUEBLO AVE 23 : NAPA, CA. 94558 27 : 32 REM"[141] 'LIST 50 -' TO SEE PROGRAM[141]"(null) 50 IFFL=0THENFL=1:LOAD"INPUT 30.O",8,1 52 A$="":POKE53281,1:PRINT"[147][144]";CHR$(14) 55 PRINT" [196]IRECTORY EDIT[146]" 60 PRINT" [212]HIS PROGRAM WILL DO THE FOLLOWING: 65 [153]" 1:WAIT (null)(null)(null)VALCLOSEDIRECTORY LISTINGS 70 PRINT" 2:[146] [205]AKE A PLACE IN THE DIRECTORY" 75 PRINT" WHERE EVER YOU WANT, SO THAT THE NEXT"; 80 PRINT" SAVED FILE WILL APPEAR THERE" 85 PRINT" 3:[146] [205]AKE A MARK (------------)" 90 PRINT" [EACH WILL BE DIFFERENT -- 45 MAX] 95 [153]" ANY PLACE IN THE DIRECTORY" 100 [153]" 4:WAIT (null)LEN(null)ATN(null)LENLEFT$ AND (null)VAL(null)ATN(null)VAL FILES 105 PRINT" [RENAME THAT MYSTERY FILE] 110 [153]" [SCRATCH '' OR',' ETC.] 115 PRINT" 5:[146] [204][207][195][203]/ [213][206][204][207][195][203] FILES; 120 [153]" LOCKED FILES CAN'T BE SCRATCHED. AND ARE PRINTED REVERSED 125 PRINT" SELECTED LOCKED FILES WILL BE UNLOCKED. "; 130 PRINT"SELECTED UNLOCKED FILES WILL BE LOCKED 135 : 140 [134]B(18),F$(144):[151]198,0 145 Z$[178]"" 150 B(1)[178]1:B(2)[178]4:B(3)[178]7:B(4)[178]10:B(5)[178]13:B(6)[178]16:B(7)[178]2:B(8)[178]5:B(9)[178]8:B(10)[178]11 155 B(11)[178]14:B(12)[178]17:B(13)[178]3:B(14)[178]6:B(15)[178]9:B(16)[178]12:B(17)[178]15:B(18)[178]18 160 [153]," PRESS A KEY":[141]1245 165 [153]"LOAD(null)HEN YOU ARE FINISHED IT WILL REWRITE THE DIRECTORY ON THE DISK. 170 PRINT"[214]ALIDATE[146] THE DISK IF DESIRED. [196]O NOT USEON DISKS WITH RANDOM FILES 175 [153]"(null)OFT-WRITE PROTECTWAIT THE DISK IF SELECTED WILL ACT LIKE THE WRITE "; 180 [153]"PROTECT TAB ON ADISK. RIGHT$T WORKS BY GIVING A DOS MISMATCH 185 PRINT"ERROR ON ATTEMPTING TO WRITE TO THE DISK 190 [153]"PEEKOTH HARD AND SOFT WRITE PROTECTED DISKS"; 195 [153]"WILL BE CHECKED FOR AT THE START OF THE PROGRAM AND REMOVED IF DESIRED. 200 PRINT"[208]LACE THE DISK TO EDIT IN THE DRIVE AND " 202 PRINT" PRESS A KEY." 205 GOSUB1245 210 PRINTCHR$(142)"[147]"; 215 OPEN1,8,15:PRINT#1,"I" 220 OPEN2,8,2,"#":GOSUB790 225 OPEN3,8,3,"0:TZ,U,W":GOSUB790 230 IFER<>0THENCLOSE2:CLOSE3:CLOSE1:GOTO210 235 CLOSE3:PRINT#1,"S0:TZ" 240 N=1:Z=1:T=18:S=1:HI$="":K=1 245 FORI=1TO11:HI$=HI$+CHR$(0):NEXT 250 K$=CHR$(131)+CHR$(18)+CHR$(0):DA$="----------------"+HI$:FI$=" " 255 PRINT"READING FILES. PLEASE WAIT 260 [152]1,"U1 2 0";T;S 265 [161]#2,T$,S$ 270 T[178][198](T$[170][199](0)):S[178][198](S$[170][199](0)) 275 [139]T[177]0[167]Z[178]Z[170]1 280 BP[178]2 285 [129]I[178]1[164]8:[153]""Z;I 290 [152]1,"B-P 2";BP 295 [158]828,2:[139]BP[179]226[167]BP[178]BP[170]32 300 [139][198]([200](A$,1))[179][177]0[167]F$(N)[178]A$:N[178]N[170]1:[130] 305 [139][198]([200](A$,1))[178]0[167][130] 310 [139]T[179][177]0[167][137]260 315 ZA[178]Z:NA[178]N 320 [129]R[178]1[164]N:[139][202](F$(R),4,1)[179][177]"-"[167]332 325 [139][202](F$(R),5,1)[178]"-"[176][202](F$(R),6,1)[178]"-"[167]DA[178]DA[170]1 332 [130]R 335 : 340 [143] DIRECTORY LISTING 345 : 350 [153]"LOAD DIRECTORY EDITWAIT" 355 [129]I[178]K[164]K[170]17 360 [139]I[177]N[171]1[167]380 365 [139][198](F$(I))[175]64[167][153]""; 370 I$[178][196](I):I$[178][201]([196](I),[195](I$)[171]1)[170]" " 375 [153]"STOP"I$;:[151]212,128:[153][202](F$(I),4,16):[151]212,0 380 [139]I[170]18[177]N[171]1[167]395 385 [139][198](F$(I[170]18)) [175]64[167][153]""; 390 [153][163]19)"ONSTOP";I[170]18;"STOP";:[151]212,128:[153][202](F$(I[170]18),4,16):[151]212,0 395 [130]:[151]212,0 400 [153]Z$"F1WAIT INSERT SPACE F2WAIT REMOVE SPACES 405 PRINT"F3[146] MOVE ENTRIES F4[146] LOCK/UNLOCK 410 [153]"F5WAIT ADD -------WAIT _WAIT WRITE OR EXIT 415 PRINT"F7[146] RENAME FILE F8[146] DELETE FILES 420 [153]"CRSR UP/DOWNWAIT PAGE IF LISTING >36 "; 425 [153][199](142); 430 [141]1245 435 [139]A$[178]"_"[167]690 440 [129]T[178]1[164]9:[139][202]("INPUTGOTODIMRUNREADLETRESTOREON",T,1)[178]A$[167]450 445 [130]:[137]425 450 [145]T[141]490,665,535,915,605,855,740,455,465 :[137]350 455 K[178]K[171]10:[139]K[178][179]0[167]K[178]1:[143] CSR-UP 460 [142] 465 [139]K[170]34[179]N[167]K[178]K[170]10:[143] CRSR-DOWN 470 [142] 475 : 480 :[143] INSERT EMPTY FILE 485 : 490 Q$[178]" SPACE ABOVE":[141]945 495 [139]A[178][179]0[167][142] 500 [129]I[178]N[164]A[170]1[169][171]1 505 F$(I)[178]F$(I[171]1):[130]:N[178]N[170]1:F$(A)[178]"" 510 [129]I[178]1[164]30:F$(A)[178]F$(A)[170][199](0):[130] 515 [142] 520 : 525 :[143] MOVE ENTRIES 530 : 535 Q$[178]" MOVE":[141]945 540 [139]A[178][179]0[167][142] 545 [139]A[177]N[171]1[167]535 550 B[178]0:[153]Z$;:[133]" ABOVE WHICH FILE ";B 555 [139]B[178][179]0[167]585 560 [139]B[177]N[167]550 565 [139]A[178]B[167]585 570 FH$[178]F$(A) 575 [139]A[177]B[167] [129] I[178]A [164] B[170]1 [169][171]1:F$(I)[178]F$(I[171]1):[130]:F$(B)[178]FH$ 580 [139]B[177]A[167] [129] I[178]A [164] B[171]1 :F$(I)[178]F$(I[170]1):[130]:F$(B[171]1)[178]FH$ 585 [142] 590 : 595 [143] ADD DASHES 600 : 605 Q$[178]" DASHES ABOVE":[141]945 610 [139]A[178][179]0[167][142] 615 [129]I[178]N[164]A[170]1[169][171]1 620 F$(I)[178]F$(I[171]1):[130]:N[178]N[170]1:DA[178]DA[170]1 625 F$(A)[178]K$[170][200](DA$,DA)[170]FI$[170][202](DA$,DA[170]1,15[171]DA)[170]HI$:[143] RIGHT$ WONT WORK 630 [139]DA[177]14[175]FI$[178]" "[167]FI$[178]"=":DA[178]0 635 [139]DA[177]14[175]FI$[178]"="[167]FI$[178]"+":DA[178]0 640 [139]DA[177]14[167]DA[178]0 645 [142] 650 : 655 :[143] REMOVE EMPTY FILES 660 : 665 [129]I[178]1[164]N[171]1:[139]([198]([200](F$(I),1)))[178]0[167][137]680 670 [130] 675 [142] 680 [129]R[178]I[164]N[171]1:F$(R)[178]F$(R[170]1):[130]:N[178]N[171]1:[137]665 685 : 690 [153]"LOAD READY TO WRITE NEW DIRECTORY... 695 PRINT" 1 TO RETURN TO EDITING" 700 PRINT" 2 TO REWRITE DIRECTORY" 705 PRINT" 0 TO END WITHOUT CHANGING OLD DIRECTORY 710 [153]" PRESS KEY 715 GOSUB1245:A=VAL(A$):IFA<0ORA>2THEN715 720 ONA+1GOTO1215,350,965:GOTO715 725 : 730 REM DELETE ENTRY 735 : 740 Q$=" DELETE":GOSUB945 745 IFA=<0THENRETURN 750 IFASC(F$(A))AND64THENPRINT"[145] LOCKED FILE ":GOSUB1245:GOTO785 755 PRINT"[147]DELETE ";MID$(F$(A),4,16) 760 PRINT"ARE YOU SURE Y/N":GOSUB1245 765 IFA$<>"Y"ANDA$<>"[217]"THEN785 770 PRINT#1,"S0:"MID$(F$(A),4,16):PRINT"WORKING 775 [141]790:[139]ER[177]1 [167] [137]785 780 [129]R[178]A[164]N[171]1:F$(R)[178]F$(R[170]1):[130]:N[178]N[171]1 785 [142] 790 [132]1,ER,ER$,ET,ES:[139]ER[178]0[167]805 795 [153]""ER;ER$;ET;ES:[139]ER[178]73 [167]810 800 [153],"PRESS ANY KEY TO CONT":[141]1245 805 [142] 810 [153]"DISK IS SOFTWARE LOCKED":[133]"DO YOU WANT TO UNLOCK IT";A$ 815 [139]A$[178]"Y"[167] [141]1265:[137]805 820 [139]A$[179][177]"N"[167]810 825 [153]"LOADTHIS PROGRAM IS USED TO REWRITE THE DIRECTORY. 830 PRINT"WRITE PROTECTION MUST BE REMOVED FOR IT TO WORK CORRECTLY. 835 [153]"CHECK DISK AND RERUN THE PROGRAM" 840 [160]2:[160]1:[128] 845 : 850 [143] [210][197][206][193][205][197] 855 Q$[178]" RENAME":[141]945 860 [139]A[178][179]0[167]895 865 [153]"LOADRENAME ";[202](F$(A),4,16) 870 A$[178]"":[133]"NEW NAME";A$:[139]A$[178]""[167]895 875 [139][195](A$)[177]16[167][153]"TOO LONG":[137]870 880 A$[178][200](A$[170]"CLOSECLOSECLOSECLOSECLOSECLOSECLOSECLOSECLOSECLOSECLOSECLOSECLOSECLOSECLOSECLOSE",16) 885 F$(A)[178][200](F$(A),3)[170]A$[170][202](F$(A),20,11) 890 [153][195](F$(A)) 895 [142] 900 : 905 [143] LOCK/UNLOCK 910 : 915 Q$[178]" LOCK/UNLOCK":[141]945 920 [139]A[178][179]0[167]955 925 B[178][198]([200](F$(A),1)):[139]B[175]64[167]B[178]B[175]191:[137]935 930 B[178]B[176]64 935 F$(A)[178][199](B)[170][202](F$(A),2,29) 940 [142] 945 A[178]0:[153]""Z$;Q$;" WHICH FILESTOP";:[133]A 950 [139]A[177]N[167]945 955 [142] 960 : 965 [153]"ON WRITING NEW DIRECTORY 970 PRINT"PLEASE DO NOT REMOVE DISK UNTIL RED" 975 PRINT"LIGHT IS OUT. THANK YOU 980 [137]985 985 A$[178]"" 990 [129]I[178]1[164]30:A$[178]A$[170][199](0):[130]:N[178]N[171]1:NA[178]NA[171]1 995 ZN[178][181](N[173]8):[139]N[173]8[177]ZN[167]ZN[178]ZN[170]1 1000 [139]ZN[178]ZA[167][137]1015 1005 [139]ZN[177]ZA[167][129]I[178]ZA[170]1[164]ZN:[152]1,"B-A 0";18;B(I):[130] 1010 [139]ZN[179]ZA[167][129]I[178]ZN[170]1[164]ZA:[152]1,"B-F 0";18;B(I):[130] 1015 NZ[178]0:BP[178]0:K[178]0:ZB[178]1 1020 [139]ZB[178]ZN[167]C$[178][199](0):B$[178][199](255):[137]1030 1025 C$[178][199](18):B$[178][199](B(ZB[170]1)) 1030 [152]1,"B-P";2;BP:[152]2,C$;B$; 1035 BP[178]2 1040 NZ[178]NZ[170]1:K[178]K[170]1 1045 [152]1,"B-P";2;BP 1050 [152]2,F$(NZ); 1055 [139]K[178]8[176]NZ[178]N[167]1065 1060 BP[178]BP[170]32:[137]1040 1065 [139]K[178]8[167]1085 1070 BP[178]BP[170]32:[152]1,"B-P";2;BP 1075 [152]2,A$; 1080 K[178]K[170]1:[139]K[179]8[167]1070 1085 [152]1,"U2:2 0";18;B(ZB) 1090 [139]NZ[178]N[167]1100 1095 ZB[178]ZB[170]1:K[178]0:BP[178]0:[137]1020 1100 [139]ZA[178][179]ZN[167][137]1130 1105 [129]I[178]ZN[170]1[164]ZA 1110 [152]1,"B-P";2;0:[152]2,[199](75); 1115 [129]Q[178]1[164]255:[152]2,[199](1);:[130]Q 1120 [152]1,"U2:2 0";18;B(I) 1125 [130]I 1130 [141]790 1135 [139]ER[179][177]0[167]F[178]1:[137]350 1140 [153]"DIRECTORY HAS BEEN REWRITTEN 1145 POKE198,0:INPUT"DO YOU WANT TO VALIDATE THE DISK";A$ 1150 IFLEFT$(A$,1)<>"Y"ANDLEFT$(A$,1)<>"[217]"THEN1180 1155 PRINT,"WORKING 1160 [152]1,"V0:":[141]790 1165 : 1170 [143] SOFTWARE LOCK 1175 : 1180 [153]"DO YOU WANT TO SOFTWARE PROTECT THE DISK":[133]" NCMDCMDCMD";A$ 1185 [139]A$[178]"N"[167]1215 1190 [139]A$[179][177]"Y"[167]1180 1195 [152]1,"U1:";2;0;18;0:[141]790 1200 [152]1,"B-P";2;2 1205 [152]2,[199](1):[141]790 1210 [152]1,"U2:";2;0;18;0 1215 [153]"LOADARE YOU FINISHED WITH THIS PROGRAM";:[133]A$ 1220 [152]1,"I0":[160]1:[160]2 1225 [139]A$[179][177]"Y"[167][153]"LOAD":[156]:[137]52 1230 [137]1340 1235 : 1240 : 1245 [151]198,0:[146]198,1:[161]A$:[142] 1250 : 1255 [143] UNLOCK DISK 1260 : 1265 [152]1,"U1:";2;0;18;0:[141]790 1270 [152]1,"B-P:";2;2 1275 [152]2,[199](65);:[141]790 1280 [152]1,"M-W";[199](1);[199](1);[199](1);[199](65) 1285 [152]1,"M-W";[199](2);[199](7);[199](1);[199](65) 1290 [152]1,"U2:";2;0;18;0:[141]790 1295 [142] 1340 [160]3:[160]2:[160]1 1342 [153]"LOADLOAD";[199](34);"PAYLOAD";[199](34);",8" 1345 [153]"RUN 1350 POKE631,13:POKE632,13:POKE198,2:END 60000 T$=" ":C=0:C$="":PRINT"[147]":POKE53281,0 60030 PRINTSPC(7)""T$:PRINTSPC(7)" [196]IRECTORY [197]DITOR [146]" 60051 PRINTSPC(7)""T$:PRINT:PRINTTAB(18)"BY" 60060 PRINT:PRINTSPC(14)"[196]ICK [194]ULL" 60070 PRINT:PRINTSPC(12)"[195]OPYRIGHT 1985" 60080 PRINT:PRINT:PRINT:PRINT" [204][207][193][196][211][212][193][210] IS NOT PUBLIC DOMAIN." 60090 PRINT:PRINT" [208]LEASE RESPECT THE AUTHOR'S RIGHTS." 60100 PRINT:PRINT" [208]RESS SPACE BAR TO CONTINUE." 60110 FORCC=1TO48:GETK$:IFK$=" "THEN60130 60120 IFCC=1THENPRINTMID$(C$,C+2,1)"[145][145]";:C=NOT(C) 60125 NEXT:GOTO60100 60130 PRINTC$:RETURN